\hypertarget{classnih_1_1_bvh__sah__builder}{
\section{nih\-:\-:\-Bvh\-\_\-sah\-\_\-builder \-Class \-Reference}
\label{classnih_1_1_bvh__sah__builder}\index{nih\-::\-Bvh\-\_\-sah\-\_\-builder@{nih\-::\-Bvh\-\_\-sah\-\_\-builder}}
}


{\ttfamily \#include $<$bvh\-\_\-sah\-\_\-builder.\-h$>$}

\subsection*{\-Classes}
\begin{DoxyCompactItemize}
\item 
struct {\bfseries \-Entity}
\item 
class \hyperlink{classnih_1_1_bvh__sah__builder_1_1_index_sort_predicate}{\-Index\-Sort\-Predicate}
\item 
struct {\bfseries \-Node}
\item 
class \hyperlink{classnih_1_1_bvh__sah__builder_1_1_predicate}{\-Predicate}
\item 
struct \hyperlink{structnih_1_1_bvh__sah__builder_1_1_stats}{\-Stats}
\end{DoxyCompactItemize}
\subsection*{\-Public \-Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classnih_1_1_bvh__sah__builder_ab6ec02c7007972f64464d9b57fbb47dd}{
typedef \hyperlink{structnih_1_1_vector}{\-Vector3f} {\bfseries \-Vector\-\_\-type}}
\label{classnih_1_1_bvh__sah__builder_ab6ec02c7007972f64464d9b57fbb47dd}

\item 
\hypertarget{classnih_1_1_bvh__sah__builder_ac14c0fbb425e6a875a964faa5acdbff1}{
typedef \hyperlink{structnih_1_1_bbox}{\-Bbox3f} {\bfseries \-Bbox\-\_\-type}}
\label{classnih_1_1_bvh__sah__builder_ac14c0fbb425e6a875a964faa5acdbff1}

\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a1504c3c33fd376b48b654116328e4a86}{
typedef \hyperlink{structnih_1_1_bvh}{\-Bvh}$<$ 3u $>$ {\bfseries \-Bvh\-\_\-type}}
\label{classnih_1_1_bvh__sah__builder_a1504c3c33fd376b48b654116328e4a86}

\item 
\hypertarget{classnih_1_1_bvh__sah__builder_aa2b24aba75619a74660d9063d6ab5f5c}{
typedef \hyperlink{structnih_1_1_bvh__node}{\-Bvh\-\_\-node} {\bfseries \-Bvh\-\_\-node\-\_\-type}}
\label{classnih_1_1_bvh__sah__builder_aa2b24aba75619a74660d9063d6ab5f5c}

\end{DoxyCompactItemize}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classnih_1_1_bvh__sah__builder_ab661bd7a124f248024f610a5375999ff}{
\hyperlink{classnih_1_1_bvh__sah__builder_ab661bd7a124f248024f610a5375999ff}{\-Bvh\-\_\-sah\-\_\-builder} ()}
\label{classnih_1_1_bvh__sah__builder_ab661bd7a124f248024f610a5375999ff}

\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\hypertarget{classnih_1_1_bvh__sah__builder_abf1b7f40c72041ba506cbab839a87422}{
void \hyperlink{classnih_1_1_bvh__sah__builder_abf1b7f40c72041ba506cbab839a87422}{set\-\_\-max\-\_\-leaf\-\_\-size} (const uint32 max\-\_\-leaf\-\_\-size)}
\label{classnih_1_1_bvh__sah__builder_abf1b7f40c72041ba506cbab839a87422}

\begin{DoxyCompactList}\small\item\em set bvh parameters \end{DoxyCompactList}\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a77428bfa9452f5293795ceac44a22c7a}{
void \hyperlink{classnih_1_1_bvh__sah__builder_a77428bfa9452f5293795ceac44a22c7a}{set\-\_\-force\-\_\-splitting} (const bool flag)}
\label{classnih_1_1_bvh__sah__builder_a77428bfa9452f5293795ceac44a22c7a}

\begin{DoxyCompactList}\small\item\em set force splitting \end{DoxyCompactList}\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a5cf76e37ce58b2b8b98d86dfaadf6598}{
void \hyperlink{classnih_1_1_bvh__sah__builder_a5cf76e37ce58b2b8b98d86dfaadf6598}{set\-\_\-force\-\_\-alignment} (const bool flag)}
\label{classnih_1_1_bvh__sah__builder_a5cf76e37ce58b2b8b98d86dfaadf6598}

\begin{DoxyCompactList}\small\item\em set force 'max leaf size'-\/aligned splits \end{DoxyCompactList}\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a9fffff6b80bf9452cae3a807e38f7e03}{
void \hyperlink{classnih_1_1_bvh__sah__builder_a9fffff6b80bf9452cae3a807e38f7e03}{set\-\_\-partial\-\_\-build} (const bool flag)}
\label{classnih_1_1_bvh__sah__builder_a9fffff6b80bf9452cae3a807e38f7e03}

\begin{DoxyCompactList}\small\item\em set partial build \end{DoxyCompactList}\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a6f0353261ef5cfc1dae643d779f6e277}{
void \hyperlink{classnih_1_1_bvh__sah__builder_a6f0353261ef5cfc1dae643d779f6e277}{set\-\_\-single\-\_\-axis\-\_\-threshold} (const uint32 v)}
\label{classnih_1_1_bvh__sah__builder_a6f0353261ef5cfc1dae643d779f6e277}

\begin{DoxyCompactList}\small\item\em set single axis test threshold \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Iterator $>$ }\\void \hyperlink{classnih_1_1_bvh__sah__builder_aa056c2970c0dcf4f155f90f7a56355eb}{build} (\-Iterator begin, \-Iterator end, \hyperlink{structnih_1_1_bvh}{\-Bvh\-\_\-type} $\ast$bvh, \hyperlink{structnih_1_1_bvh__sah__builder_1_1_stats}{\-Stats} $\ast$stats=\-N\-U\-L\-L)
\item 
{\footnotesize template$<$typename Iterator , typename Cost\-Iterator $>$ }\\void \hyperlink{classnih_1_1_bvh__sah__builder_a269b237d912be53b8483c63d7c9e06fe}{build} (\-Iterator begin, \-Iterator end, \-Cost\-Iterator cost\-\_\-begin, \hyperlink{structnih_1_1_bvh}{\-Bvh\-\_\-type} $\ast$bvh, \hyperlink{structnih_1_1_bvh__sah__builder_1_1_stats}{\-Stats} $\ast$stats=\-N\-U\-L\-L)
\item 
\hypertarget{classnih_1_1_bvh__sah__builder_a8a807a067d1870d23313781ee76a9e34}{
uint32 \hyperlink{classnih_1_1_bvh__sah__builder_a8a807a067d1870d23313781ee76a9e34}{index} (const uint32 i) const }
\label{classnih_1_1_bvh__sah__builder_a8a807a067d1870d23313781ee76a9e34}

\begin{DoxyCompactList}\small\item\em remapped point index \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\-An \-S\-A\-H-\/based bvh builder for 3d bboxes 

\subsection{\-Member \-Function \-Documentation}
\hypertarget{classnih_1_1_bvh__sah__builder_aa056c2970c0dcf4f155f90f7a56355eb}{
\index{nih\-::\-Bvh\-\_\-sah\-\_\-builder@{nih\-::\-Bvh\-\_\-sah\-\_\-builder}!build@{build}}
\index{build@{build}!nih::Bvh_sah_builder@{nih\-::\-Bvh\-\_\-sah\-\_\-builder}}
\subsubsection[{build}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Iterator $>$ void nih\-::\-Bvh\-\_\-sah\-\_\-builder\-::build (
\begin{DoxyParamCaption}
\item[{\-Iterator}]{begin, }
\item[{\-Iterator}]{end, }
\item[{{\bf \-Bvh\-\_\-type} $\ast$}]{bvh, }
\item[{{\bf \-Stats} $\ast$}]{stats = {\ttfamily \-N\-U\-L\-L}}
\end{DoxyParamCaption}
)}}
\label{classnih_1_1_bvh__sah__builder_aa056c2970c0dcf4f155f90f7a56355eb}
build

\-Iterator is supposed to dereference to a \-Bbox3f


\begin{DoxyParams}{\-Parameters}
{\em begin} & first point \\
\hline
{\em end} & last point \\
\hline
{\em bvh} & output bvh \\
\hline
\end{DoxyParams}
\hypertarget{classnih_1_1_bvh__sah__builder_a269b237d912be53b8483c63d7c9e06fe}{
\index{nih\-::\-Bvh\-\_\-sah\-\_\-builder@{nih\-::\-Bvh\-\_\-sah\-\_\-builder}!build@{build}}
\index{build@{build}!nih::Bvh_sah_builder@{nih\-::\-Bvh\-\_\-sah\-\_\-builder}}
\subsubsection[{build}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Iterator , typename Cost\-Iterator $>$ void nih\-::\-Bvh\-\_\-sah\-\_\-builder\-::build (
\begin{DoxyParamCaption}
\item[{\-Iterator}]{begin, }
\item[{\-Iterator}]{end, }
\item[{\-Cost\-Iterator}]{cost\-\_\-begin, }
\item[{{\bf \-Bvh\-\_\-type} $\ast$}]{bvh, }
\item[{{\bf \-Stats} $\ast$}]{stats = {\ttfamily \-N\-U\-L\-L}}
\end{DoxyParamCaption}
)}}
\label{classnih_1_1_bvh__sah__builder_a269b237d912be53b8483c63d7c9e06fe}
build

\-Iterator is supposed to dereference to a \-Bbox3f


\begin{DoxyParams}{\-Parameters}
{\em begin} & first point \\
\hline
{\em end} & last point \\
\hline
{\em bvh} & output bvh \\
\hline
\end{DoxyParams}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
bvh/bvh\-\_\-sah\-\_\-builder.\-h\item 
bvh/bvh\-\_\-sah\-\_\-builder\-\_\-inline.\-h\end{DoxyCompactItemize}
